相對於 dbt Cloud 為 dbt Labs 提供的 SaaS solution,
dbt Core 為 free open source solution,我們可以自由選擇習慣的環境開發。
dbt Cloud 及 dbt Core 並不是二選一,我們可以依據團隊的人數、技能、預算、使用情境,兩者混合使用。
我個人的經驗是從 dbt Cloud 開始用,在 dbt Cloud 建立的專案,後續也在本機 dbt Core 同時開發。
本文同樣沿用前半段所使用的 dbt project,git clone 至本機。
開發工具選用免費的 VS Code。
沿用本系列前半段所建立的 dbt 專案。同樣會用到 BigQuery 以及 GitHub 帳號。
參考文章 Install with pip 中 Does my operating system have prerequisites? 的說明
https://code.visualstudio.com/download
Clone Git Repository -> Clone from GitHub -> 選擇系列文章前半段我們所建立的 repo。
完成後直接開啟專案。
此處會依作業系統不同,例如我用 Ubuntu 的指令如下:
建立 venv
python3.11 -m venv venv
Activate venv
source venv/bin/activate
新增檔案 requirements.txt
檔案內容
dbt-bigquery
因為我們要連的是 BigQuery 所以就直接依 requirements.txt 安裝 dbt-bigquery。
安裝此套件會連同 dbt Core 及其他套件一同安裝。
pip install -r requirements.txt
安裝完成後,檢查 dbt core 版本
dbt --version
建立新檔案 profiles.yml。
內容如下,註解處依照說明自行修改。
原始來源 https://docs.getdbt.com/quickstarts/manual-install?step=2
jaffle_shop: # this needs to match the profile in your dbt_project.yml file
target: dev
outputs:
dev:
type: bigquery
method: service-account
keyfile: /Users/BBaggins/.dbt/dbt-tutorial-project-331118.json # replace this with the full path to your keyfile
project: grand-highway-265418 # Replace this with your project id
dataset: dbt_bbagins # Replace this with dbt_your_name, e.g. dbt_bilbo
threads: 1
timeout_seconds: 300
location: US
priority: interactive
執行指令檢查是否能正確連到 BigQuery
dbt debug
以上大部分新增的檔案都是本機個人使用,不上 GitHub。
所以需要更新 .gitignore,排除這些檔案。
在 .gitignore 加入
# dbt core
venv
.user.yml
profiles.yml
提交今日的變更並更新至GitHub,結束這一天。
請注意除了 requiremnts.txt,今天新增的其他檔案都不該上 Git。
明天的主題:在本機開發 dbt Core的基本操作。
歡迎加入 dbt community
對 dbt 或 data 有興趣 👋?歡迎加入 dbt community 到 #local-taipei 找我們,也有實體 Meetup 請到 dbt Taipei Meetup 報名參加